package org.example;

/**
 * 计数器单例类
 * 包含了单例模式的实现和测试代码
 */
public class Counter {
    // 私有静态实例
    private static Counter instance;
    
    // 计数值
    private int count;
    
    // 私有构造函数
    private Counter() {
        count = 0;
    }
    
    // 获取实例的公共方法
    public static Counter getInstance() {
        if (instance == null) {
            instance = new Counter();
        }
        return instance;
    }
    
    // 增加计数
    public void increment() {
        count++;
    }
    
    // 获取当前计数
    public int getCount() {
        return count;
    }

    // 测试方法
    public static void main(String[] args) {
        // 获取Counter实例
        Counter counter1 = Counter.getInstance();
        Counter counter2 = Counter.getInstance();
        
        // 使用第一个引用增加计数
        counter1.increment();
        counter1.increment();
        
        // 使用第二个引用获取计数
        System.out.println("Counter2 的计数值: " + counter2.getCount()); // 输出 2
        
        // 验证是否是同一个实例
        System.out.println("counter1 和 counter2 是否是同一个实例: " + (counter1 == counter2)); // 输出 true
    }
} 